﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sigecov.Models;
namespace Sigecov.Formularios
{
    public partial class FrmGerencialCategoria : Form
    {
        public FrmGerencialCategoria()
        {
            InitializeComponent();
        }
        private void btnAtualizarCategorias_Click(object sender, EventArgs e)
        {
            Categoria.ListarCategoria(dgvCategoria);
        }

        private void btnNovaCategoria_Click(object sender, EventArgs e)
        {
            FrmBase._tipoOperacao = "INCLUIR";
            FrmCategoria categoria = new FrmCategoria();
            DialogResult confirmacao = categoria.ShowDialog();
            if (confirmacao.ToString().ToUpper() == "CANCEL")
                Categoria.ListarCategoria(dgvCategoria);
        }

        private void btnAlterarCategoria_Click(object sender, EventArgs e)
        {
            if (dgvCategoria.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvCategoria.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "ALTERAR";
                FrmCategoria categoria = new FrmCategoria();
                DialogResult confirmacao = categoria.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    Categoria.ListarCategoria(dgvCategoria);
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void btnDeletarCategoria_Click(object sender, EventArgs e)
        {
            if (dgvCategoria.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvCategoria.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "DELETAR";
                FrmCategoria categoria = new FrmCategoria();
                DialogResult confirmacao = categoria.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    Categoria.ListarCategoria(dgvCategoria);
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void FrmGerencialCategoria_Load(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            Categoria.ListarCategoria(dgvCategoria);
        }
        private void txtPesquisa_TextChanged(object sender, EventArgs e)
        {
            if (!(string.IsNullOrWhiteSpace(txtPesquisa.Text)))
            {
                using (SigecovContext DB = new SigecovContext())
                {
                    if (rdbCodigo.Checked)
                    {
                        int _codigo = Convert.ToInt32(txtPesquisa.Text);
                        dgvCategoria.DataSource = DB.Categorias.Select(c => new { Código = c.catId, Descrição = c.catNome })
                            .Where(c => c.Código == _codigo).OrderBy(c => c.Descrição).ToList();
                    }
                    else
                    {
                        dgvCategoria.DataSource = DB.Categorias.Select(c => new { Código = c.catId, Descrição = c.catNome })
                            .Where(c => c.Descrição.Contains(txtPesquisa.Text)).OrderBy(c => c.Descrição).ToList();
                    }

                }
            }
            else
                Categoria.ListarCategoria(dgvCategoria);
        }

        private void txtPesquisa_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(rdbCodigo.Checked)
                Ferramenta.SomenteNumero(e);
        }

        private void rdbCodigo_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            txtPesquisa.Clear();
        }

        private void rdbDescricao_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 32767;
            txtPesquisa.Clear();
        }
    }
}
